package com.work.cos.util.thirdpay.alipay.config;

/* *
 * 类名：AlipayConfig功能：基础配置类详细：设置帐户有关信息及返回路径版本：3.3日期：2012-08-10说明：
 * 以下代码只是为了方便商户测试而提供的样例代码，商户可以根据自己网站的需要，按照技术文档编写,并非一定要使用该代码。该代码仅供学习和研究支付宝接口使用，只是提供一个参考。提示：如何获取安全校验码和合作身份者ID
 * 1.用您的签约支付宝账号登录支付宝网站(www.alipay.com)2.点击“商家服务”(https://b.alipay.com/order/myOrder.htm)
 * 3.点击“查询合作者身份(PID)”、“查询安全校验码(Key)”安全校验码查看时，输入支付密码后，页面呈灰色的现象，怎么办？解决方法：1、检查浏览器配置，不让浏览器做弹框屏蔽设置2、更换浏览器或电脑，重新登录查询。
 */

import java.util.Locale;
import java.util.ResourceBundle;

public class AlipayConfig2 {

    // ↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
    // 合作身份者ID，以2088开头由16位纯数字组成的字符串
    public static final String partner;
    // 商户的私钥
    public static final String key;

    // 卖家支付宝帐户
    public static final String seller_email;

    // 支付类型
    public static final String payment_type;

    // 字符编码格式 目前支持 gbk 或 utf-8
    public static final String input_charset = "utf-8";

    // 签名方式 不需修改
    public static final String sign_type = "MD5";

    // 支付宝的公钥，无需修改该值
    public static String ali_public_key;

    // 商户（RSA）私钥
    public static final String rsa_pkcs8;


    // -- url -------------------
//     private static final String context = "http://test.meiyin100.com:8280/meiyin";
    // TODO context move to database config

    // 支付宝服务器通知的页面 要用 http://格式的完整路径，不允许加?id=123这类自定义参数
    // 必须保证其地址能够在互联网中访问的到
    public static final String notify_url = "http://center.xianzhongwang.com/alipay/pay/notify";
    public static final String notify_test_url = "http://test.xianzhongwang.com:7001/alipay/pay/notify";

    // 当前页面跳转后的页面 要用 http://格式的完整路径，不允许加?id=123这类自定义参数
    // 域名不能写成http://localhost/create_direct_pay_by_user_jsp_utf8/return_url.jsp ，否则会导致return_url执行无效
    public static final String return_url = "/alipay/paymentreturn";

    // 退款通知URL
    public static final String refund_notify_url = "/alipay/pay/refund_notify";

    // ↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


    public static final String SESSION_KEY_PAYMENT_PARAM_MAP = "SESSION_KEY_PAYMENT_PARAM_MAP";

    static {
        partner = "";
        key = "";
        seller_email = "";
        payment_type = "";
        ali_public_key = "";
        rsa_pkcs8 = "";

    }

    public static enum TRADE_PARAM_KEY {
        /**
         * 流水号
         */
        TRADE_NO("trade_no"),
        /**
         * 流水状态
         */
        TRADE_STATUS("trade_status"),
        /**
         * 额外参数
         */
        EXTRA_COMMON_PARAM("extra_common_param"),
        /**
         * 交易号
         */
        OUT_TRADE_NO("out_trade_no"),
        /**
         * 标题
         */
        SUBJECT("subject"),
        /**
         * 概要
         */
        BODY("body"),
        /**
         * 付款金额
         */
        TOTAL_FEE("total_fee"),
        /**
         * 显示url
         */
        SHOW_URL("show_url"),
        /**
         * 本地服务
         */
        HANDLER_NAME("handler_name"),
        /**
         * 交易类型
         */
        TRADE_TYPE("trade_type"),
        /**
         * 退款批次号
         */
        BATCH_NO("batch_no"),
        /**
         * 退款日期
         */
        REFUND_DATE("refund_date"),
        /**
         * 退款数量
         */
        BATCH_NUM("batch_num"),
        /**
         * 退款信息
         */
        DETAIL_DATA("detail_data"),
        /**
         * 退款成功数
         */
        SUCCESS_NUM("success_num"),
        /**
         * 退款返回详细
         */
        RESULT_DETAILS("batch_num"),
        /**
         * 服务方法
         */
        SERVICE("service");
        // 定义私有变量
        private String name;

        // 构造函数，枚举类型只能为私有
        private TRADE_PARAM_KEY(String _name) {
            this.name = _name;
        }

        public void setname(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return String.valueOf(this.name);
        }
    }

    /**
     * 交易退款标记
     */
    public static enum TRADE_REFUNDED {
        /**
         * 未付款
         */
        INIT("未付款", 0),
        /**
         * 不可退款
         */
        LOCK("不可退款", 1),
        /**
         * 可退款
         */
        OPEN("可退款", 2),
        /**
         * 已退款
         */
        BACK("已退款", 3),
        /**
         * 退款失败
         */
        FAIL("退款失败", 4);
        private String name;
        private int code;

        private TRADE_REFUNDED(String _name, int _code) {
            this.name = _name;
            this.code = _code;
        }

        public String getName() {
            return name;
        }

        public int getCode() {
            return code;
        }

        @Override
        public String toString() {
            return String.valueOf(this.code);
        }
    }

    /**
     * 合作身份者ID
     */
    public static final String PAY_PARTNER = "pay_partner";
    /**
     * 商户的私钥
     */
    public static final String PAY_KEY = "pay_key";
    /**
     * 卖家支付宝帐户
     */
    public static final String PAY_SELLER_EMAIL = "pay_seller_email";
    /**
     * 支付类型
     */
    public static final String PAY_PAYMENT_TYPE = "pay_payment_type";
    /**
     * 支付服务根路径
     */
    public static final String PAY_ROOT_URL = "pay_root_url";
    /**
     * 支付通知路径
     */
    public static final String PAY_NOTIFY_URL = "pay_notify_url";
    /**
     * 支付通知后再次返回跳转路径
     */
    public static final String PAY_RETURN_URL = "pay_return_url";
    /**
     * 退款通知路径
     */
    public static final String PAY_REFUND_NOTIFY_URL = "pay_refund_notify_url";
    /**
     * 字符编码
     */
    public static final String PAY_INPUT_CHARSET = "pay_input_charset";
    /**
     * 签名方式
     */
    public static final String PAY_SIGN_TYPE = "pay_sign_type";
    /**
     * 交易成功状态
     */
    public static final String PAY_TRADE_SUCCESS = "pay_trade_success";
}
